#include "stm8s_it.h"
#include "esapi.h"
#include "motor.h"

/*
串口1 RX中断
*/
@far @interrupt void UART1_RX_IRQHandler(void)
{
    UART1_ClearITPendingBit(UART1_IT_RXNE);
    UART1_SendData8(UART1_ReceiveData8()); //转发接收到的数据到UART1
}

@far @interrupt void TLI_IRQHandler(void)
{
}

@far @interrupt void EXTI_PORTB_IRQHandler(void)
{
    /*
	disableInterrupts();
	GPIO_WriteReverse(GPIOB,GPIO_PIN_5);
	enableInterrupts();
	*/
}

//PC中断
@far @interrupt void EXTI_PORTC_IRQHandler(void)
{    
	disableInterrupts();

    //下降沿触发，选中时必定为0
	if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_4)==RESET){	//key1
		setMotor(POS_FORWARD_LIMIT);
	}

	if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_3)==RESET){	//key2
		setMotor(POS_BACKWARD_LIMIT);
	}
	
	enableInterrupts();	
}

//PD中断
@far @interrupt void EXTI_PORTD_IRQHandler(void)
{

}


//tim4作为systick使用
@far @interrupt void TIM4_UPD_OVF_IRQHandler(void)
{
    if (TIM4_GetITStatus(TIM4_IT_UPDATE) != RESET)
    {
        //清除中断标志
        TIM4_ClearITPendingBit(TIM4_IT_UPDATE);
        AddTick();
    }
}


@far @interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{
    //TIM1_ClearITPendingBit(TIM1_IT_UPDATE);		//清除中断标志
}

@far @interrupt void TIM2_UPD_OVF_TRG_BRK_IRQHandler(void)
{
    //TIM1_ClearITPendingBit(TIM1_IT_UPDATE);		//清除中断标志
}
